// define(['ui.router', 'oclazyload'], function(router, oclazyload) {
// var lazy = angular.module('lazy', ['ui.router', 'oc.lazyLoad']);
define([], function() {

    var lazy = {};

    lazy.makeLazy = function(module) {
        module.config(['$compileProvider', '$filterProvider', '$controllerProvider', '$provide', function($compileProvider, $filterProvider, $controllerProvider, $provide) {
            module.defineDirective = lazy.register($compileProvider.directive);
            module.defineFilter = lazy.register($filterProvider.register);
            module.defineController = lazy.register($controllerProvider.register);
            module.defineProvider = lazy.register($provide.provider);
            module.defineService = lazy.register($provide.service);
            module.defineFactory = lazy.register($provide.factory);
            module.defineValue = lazy.register($provide.value);
            module.defineConstant = lazy.register($provide.constant);
        }]);

        // module.parseStateConfig = function(routerConfig) {

        //     if (!angular.isObject(routerConfig)) return;

        //     module.config(['$stateProvider', '$urlRouterProvider', function($stateProvider) {

        //     }])


        // }

        return module;

    };

    lazy.register = function(regist) {
        return function(name, constructor) {
            regist(name, constructor);
        }
    };


    // lazy.parseConfig = function(config, module) {

    //     var resolve,
    //         scripts = config.scripts;

    //     if (!scripts) return config;

    //     resolve = config.resolve = config.resolve || {};

    //     resolve.deps = function($q, $state, $rootScope, $ocLazyLoad) {
    //         var promise_return = $q.defer(),
    //             // 原来是module改成modules
    //             modules = scripts.modules;

    //         if (modules) {
    //             lazy.loadModules($q, $ocLazyLoad, modules).then(function() {
    //                 loadOthers();
    //             });
    //         }


    //     }
    // }

    // lazy.loadModules = function($q, $ocLazyLoad, modules) {

    //     var defer = $q.defer(),
    //         promiseArray = [];

    //     if (!url) {
    //         defer.resolve();
    //     }

    //     for (var i = 0, len = modules.length; i < len; i++) {
    //         require(modules[i],
    //             function(module) {
    //                 promiseArray.push($ocLazyLoad.inject(module.name));
    //             },
    //             function(error) {
    //                 console.log(error);
    //             }
    //         );
    //     }

    //     $q.all(promiseArray).then(function() {
    //         defer.resolve();
    //     })

    //     return defer.promise;

    // }

    return lazy;
});